d/patches: Fix unit test suite on big endian machine
authorMathieu Malaterre <malat@debian.org>
Thu, 18 Nov 2021 07:39:15 +0000 (08:39 +0100)
committerMathieu Malaterre <malat@debian.org>
Thu, 18 Nov 2021 07:39:15 +0000 (08:39 +0100)
debian/patches/bigendian.patch [new file with mode: 0644]
debian/patches/series

diff --git a/debian/patches/bigendian.patch b/debian/patches/bigendian.patch
new file mode 100644 (file)
index 0000000..d6a9018
--- /dev/null
@@ -0,0 +1,106 @@
+Author: Mathieu Malaterre <malat@debian.org>
+Description: Fix unit test suite on big endian machine
+ Concatenation of upstream commit:
+ .
+ - b499d89e769feffce03c5d7cefa1cb06d33a2b5b
+ - 9e8434a2952ae39d1f9d0914173b5cc5b1b32175
+ - 4df0f42790b9952aa75c7242fbcc47a348922bc6
+Forwarded: not-needed
+
+---
+ dcmect/tests/t_roundtrip.cc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+Index: dcmtk/dcmect/tests/t_roundtrip.cc
+===================================================================
+--- dcmtk.orig/dcmect/tests/t_roundtrip.cc
++++ dcmtk/dcmect/tests/t_roundtrip.cc
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2019-2020, OFFIS e.V.
++ *  Copyright (C) 2019-2021, OFFIS e.V.
+  *  All rights reserved.  See COPYRIGHT file for details.
+  *
+  *  This software and supporting documentation were developed by
+@@ -28,6 +28,9 @@
+ #include "dcmtk/dcmect/enhanced_ct.h"
++#include "dcmtk/dcmdata/dcxfer.h"
++#include "dcmtk/dcmdata/dcswap.h"
++
+ #include "dcmtk/dcmfg/concatenationcreator.h"
+ #include "dcmtk/dcmfg/concatenationloader.h"
+ #include "dcmtk/dcmfg/fgctacquisitiondetails.h"
+@@ -295,7 +298,6 @@ static void addSharedFGs(EctEnhancedCT*
+         OFCHECK(exp_item->setCTDIVol(0.1).good());
+         CodeSequenceMacro* phantom_item = new CodeSequenceMacro("113682", "DCM", "ACR Accreditation Phantom - CT");
+         exp_item->getCTDIPhantomTypeCodeSequence().push_back(phantom_item);
+-        OFCHECK(exp_item->setEstimatedDoseSaving(0.2).good());
+         OFCHECK(exp_item->setExposureInMas(0.3).good());
+         OFCHECK(exp_item->setExposureModulationType("WEIRD").good());
+         OFCHECK(exp_item->setExposureTimeInMs(0.4).good());
+@@ -619,6 +621,7 @@ static void checkConcatenationInstance(s
+         // Check that all pixels are set to their original source instances frame number (starting from 1)
+         for (size_t pix = 0; pix < NUM_PIXELS_PER_FRAME; pix++)
+         {
++            swapIfNecessary(gLocalByteOrder, EBO_LittleEndian, &frame[pix], 2, sizeof(Uint16));
+             OFCHECK(frame[pix] == numInstance + 1);
+         }
+         delete concat;
+@@ -658,7 +661,11 @@ static void prepareExpectedDump()
+ {
+     EXPECTED_DUMP += "\n";
+     EXPECTED_DUMP += "# Dicom-Data-Set\n";
+-    EXPECTED_DUMP += "# Used TransferSyntax: Little Endian Explicit\n";
++    // DcmDataset.print() produces dumps in local endianess, so make sure the dump reflects the current machine
++    if (gLocalByteOrder == EBO_LittleEndian)
++        EXPECTED_DUMP += "# Used TransferSyntax: Little Endian Explicit\n";
++    else
++        EXPECTED_DUMP += "# Used TransferSyntax: Big Endian Explicit\n";
+     EXPECTED_DUMP += "(0008,0008) CS [ORIGINAL\\PRIMARY\\VOLUME\\MAXIMUM]        #  32, 4 ImageType\n";
+     EXPECTED_DUMP += "(0008,0016) UI =EnhancedCTImageStorage                  #  28, 1 SOPClassUID\n";
+     EXPECTED_DUMP
+@@ -789,7 +796,7 @@ static void prepareExpectedDump()
+     EXPECTED_DUMP += "      (fffe,e00d) na (ItemDelimitationItem for re-encoding)   #   0, 0 ItemDelimitationItem\n";
+     EXPECTED_DUMP += "    (fffe,e0dd) na (SequenceDelimitationItem for re-encod.) #   0, 0 SequenceDelimitationItem\n";
+     EXPECTED_DUMP += "    (0018,9321) SQ (Sequence with explicit length #=1)      #   0, 1 CTExposureSequence\n";
+-    EXPECTED_DUMP += "      (fffe,e000) na (Item with explicit length #=10)         #   0, 1 Item\n";
++    EXPECTED_DUMP += "      (fffe,e000) na (Item with explicit length #=9)          #   0, 1 Item\n";
+     EXPECTED_DUMP += "        (0018,115e) DS [0.5]                                    #   4, 1 "
+                      "ImageAndFluoroscopyAreaDoseProduct\n";
+     EXPECTED_DUMP
+@@ -807,7 +814,6 @@ static void prepareExpectedDump()
+         += "        (fffe,e0dd) na (SequenceDelimitationItem for re-encod.) #   0, 0 SequenceDelimitationItem\n";
+     EXPECTED_DUMP
+         += "        (0018,9323) CS [WEIRD]                                  #   6, 1 ExposureModulationType\n";
+-    EXPECTED_DUMP += "        (0018,9324) FD 0.2                                      #   8, 1 EstimatedDoseSaving\n";
+     EXPECTED_DUMP += "        (0018,9328) FD 0.4                                      #   8, 1 ExposureTimeInms\n";
+     EXPECTED_DUMP += "        (0018,9330) FD 0.7                                      #   8, 1 XRayTubeCurrentInmA\n";
+     EXPECTED_DUMP += "        (0018,9332) FD 0.3                                      #   8, 1 ExposureInmAs\n";
+Index: dcmtk/dcmseg/tests/troundtrip.cc
+===================================================================
+--- dcmtk.orig/dcmseg/tests/troundtrip.cc
++++ dcmtk/dcmseg/tests/troundtrip.cc
+@@ -31,6 +31,7 @@
+ #include "dcmtk/dcmfg/fgplanpo.h"
+ #include "dcmtk/dcmfg/fgseg.h"
+ #include "dcmtk/dcmiod/iodmacro.h"
++#include "dcmtk/dcmdata/dcxfer.h"
+ #include "dcmtk/ofstd/ofmem.h"
+ #include "dcmtk/ofstd/ofstrutl.h"
+ #include "dcmtk/ofstd/oftempf.h"
+@@ -406,7 +407,11 @@ static void prepareExpectedDump()
+ {
+     EXPECTED_DUMP = "\n";
+     EXPECTED_DUMP += "# Dicom-Data-Set\n";
+-    EXPECTED_DUMP += "# Used TransferSyntax: Little Endian Explicit\n";
++    // DcmDataset.print() produces dumps in local endianess, so make sure the dump reflects the current machine
++    if (gLocalByteOrder == EBO_LittleEndian)
++        EXPECTED_DUMP += "# Used TransferSyntax: Little Endian Explicit\n";
++    else
++        EXPECTED_DUMP += "# Used TransferSyntax: Big Endian Explicit\n";
+     EXPECTED_DUMP += "(0008,0008) CS [DERIVED\\PRIMARY]                        #  16, 2 ImageType\n";
+     EXPECTED_DUMP += "(0008,0016) UI =SegmentationStorage                     #  28, 1 SOPClassUID\n";
+     EXPECTED_DUMP
index 3d54b1bad147bde77ba581bd624659b91f42b299..01b30684b600339ea5b9c14201e0e0fea54b7ef9 100644 (file)
@@ -1,3 +1,4 @@
 01_dcmtk_3.6.0-1.patch
 03_datadic_install.patch
 07_dont_export_all_executables.patch
+bigendian.patch